\chapter{Conclusiones}

Los algoritmos genéticos son ampliamente utilizados para la resolución de
problemas de optimización combinatoria. En el caso particular del
problema Eteniry II, los trabajos relacionados que utilizaron este método
mostraron no ser del todo eficientes en encontrar buenas soluciones al mismo.
Nuestros resultados muestran, tal como sugirieran algunos autores, que el
agregado de una búsqueda local mejora la calidad de las soluciones encontradas.
La combinación de ambas técinas parece complementarse de manera satistactoria
para este problema, donde el algoritmo genético evita caer de manera temprana en
máximos locales recorriendo diferentes vecindarios y, la búsqueda local, busca
 de manera eficiente soluciones dentro de un determinado vecindario.\\

Al comparar con resultados de otros trabajos, el algoritmo genético combinado
con búsqueda local consigue mejores resultados en varios casos y resultados similares a
otros, pero utilizando un menor tiempo de ejecución. Si bien se muestra que el
rendimiento del algoritmo se ve notablemente afectado al combinarlo, los
resultados conseguidos son favorables respecto a la calidad de las soluciones,
incluso en menor tiempo de ejecución, por lo que el trade-off se puede
considerar adecuado.\\

Si bien las mejores soluciones encontradas hasta el momento, incluso aquellas 
halladas fuera del ámbito de las metaheurísticas, parecen estar cerca de
las conseguidas por el algoritmo genético combinado, pudimos mostrar que
disminiur ese margen resulta muy dificil utilizando esta técnica. Probablemente
esto se deba a la gran cantidad de óptimos locales que se encuentran en el medio.\\

Como trabajo futuro podemos pensar en involucrar operadores con conocimiento del
dominio del problema, tanto dentro del algoritmo genético como en la
implementación de la búsqueda local. Ejemplo de esto podría ser tener en
cuenta bloques completos del rompecabezas al momento de realizar las operaciones
de mutación y crossover o al momento de seleccionar qué piezas intercambiar
dentro de la búsqueda local. Otras opciones también puede ser la utilización de una 
función de fitness adaptativa o incluso que el comportamiento completo del algoritmo 
sea adaptativo modificando los parámetros según las necesidades.